 /* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

分布式云物理服务器
分布式云物理服务器相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#import <Foundation/Foundation.h>
#import <JDCloudOCSDKEdcps/EdcpsExecutor.h>

@implementation EdcpsClient

@synthesize userAgent = _userAgent;
@synthesize serviceName = _serviceName;
@synthesize version = _version;

-(void) addCustomerHeaderWithKey:(NSString*) key
                           value:(NSString*) value{
    if(![self customHeader])
    {
        self.customHeader = [[NSMutableDictionary alloc] init];
    }
    if(key && value)
    {
        [[self customHeader] setValue:value forKey:key];
    }
   
}

-(id)initWithGlobalConfig{
    if(![GlobalConfig credential])
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@"GlobalConfig credential not config" userInfo:nil];
        @throw e;
    }
    self.credential = [GlobalConfig credential];
    if(![GlobalConfig sdkEnvironment])
    {
        self.sdkEnvironment = [[SDKEnvironment alloc] initWithEndPoint:@"edcps.jdcloud-api.com"];
    }else
    {
        self.sdkEnvironment = [GlobalConfig sdkEnvironment];
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 edcps  v1";
    _serviceName = @"edcps";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)initWithCredential:(Credential*)credential
         sdkEnvironment:(SDKEnvironment*)sdkEnvironment
{
    if(!credential)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" credential can not null" userInfo:nil];
        @throw e;
    }else{
        self.credential = credential;
    }
    
    if(!sdkEnvironment)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" sdkEnvironment can not null" userInfo:nil];
        @throw e;
    }else{
        self.sdkEnvironment = sdkEnvironment;
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 edcps  v1";
    _serviceName = @"edcps";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)initWithCredential:(Credential*)credential
{
    if(!credential)
    {
        NSException *e = [SDKArgumentNullException exceptionWithName:@"ArgumentNullException" reason:@" credential can not null" userInfo:nil];
        @throw e;
    }else{
        self.credential = credential;
    }
    if(![GlobalConfig sdkEnvironment])
    {
        self.sdkEnvironment = [[SDKEnvironment alloc] initWithEndPoint:@"edcps.jdcloud-api.com"];
    }else
    {
        self.sdkEnvironment = [GlobalConfig sdkEnvironment];
    }
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 edcps  v1";
    _serviceName = @"edcps";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}

-(id)init{
    self.httpRequestProtocol = @"https";
    _userAgent = @"JdCloudOCSdk 0.0.1 edcps  v1";
    _serviceName = @"edcps";
    _version = @"v1";
    self.contentType = @"application/json";
    return self;
}


/**
modifyInstance sync request
@param modifyInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyInstanceResponse` the request response data model
*/
-(NSDictionary*) modifyInstanceSyncWithRequest:(EdcpsModifyInstanceRequest*) modifyInstanceRequest
{
EdcpsModifyInstanceExecutor* excutor = [[EdcpsModifyInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsModifyInstanceResponse* response = [[EdcpsModifyInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyInstanceAsyncWithRequest:(EdcpsModifyInstanceRequest*) modifyInstanceRequest
                       completionHandler:(void(^)(int statusCode,EdcpsModifyInstanceResponse* _Nullable modifyInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsModifyInstanceExecutor* excutor = [[EdcpsModifyInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsModifyInstanceResponse* response = [[EdcpsModifyInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
disassociateElasticIp sync request
@param disassociateElasticIpRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `disassociateElasticIpResponse` the request response data model
*/
-(NSDictionary*) disassociateElasticIpSyncWithRequest:(EdcpsDisassociateElasticIpRequest*) disassociateElasticIpRequest
{
EdcpsDisassociateElasticIpExecutor* excutor = [[EdcpsDisassociateElasticIpExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:disassociateElasticIpRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDisassociateElasticIpResponse* response = [[EdcpsDisassociateElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"disassociateElasticIpResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)disassociateElasticIpAsyncWithRequest:(EdcpsDisassociateElasticIpRequest*) disassociateElasticIpRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDisassociateElasticIpResponse* _Nullable disassociateElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDisassociateElasticIpExecutor* excutor = [[EdcpsDisassociateElasticIpExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:disassociateElasticIpRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDisassociateElasticIpResponse* response = [[EdcpsDisassociateElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeElasticIps sync request
@param describeElasticIpsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpsResponse` the request response data model
*/
-(NSDictionary*) describeElasticIpsSyncWithRequest:(EdcpsDescribeElasticIpsRequest*) describeElasticIpsRequest
{
EdcpsDescribeElasticIpsExecutor* excutor = [[EdcpsDescribeElasticIpsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeElasticIpsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeElasticIpsResponse* response = [[EdcpsDescribeElasticIpsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeElasticIpsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeElasticIpsAsyncWithRequest:(EdcpsDescribeElasticIpsRequest*) describeElasticIpsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeElasticIpsResponse* _Nullable describeElasticIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeElasticIpsExecutor* excutor = [[EdcpsDescribeElasticIpsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeElasticIpsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeElasticIpsResponse* response = [[EdcpsDescribeElasticIpsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeOS sync request
@param describeOSRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeOSResponse` the request response data model
*/
-(NSDictionary*) describeOSSyncWithRequest:(EdcpsDescribeOSRequest*) describeOSRequest
{
EdcpsDescribeOSExecutor* excutor = [[EdcpsDescribeOSExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeOSRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeOSResponse* response = [[EdcpsDescribeOSResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeOSResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeOSAsyncWithRequest:(EdcpsDescribeOSRequest*) describeOSRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeOSResponse* _Nullable describeOSResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeOSExecutor* excutor = [[EdcpsDescribeOSExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeOSRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeOSResponse* response = [[EdcpsDescribeOSResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeDeviceTypes sync request
@param describeDeviceTypesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeDeviceTypesResponse` the request response data model
*/
-(NSDictionary*) describeDeviceTypesSyncWithRequest:(EdcpsDescribeDeviceTypesRequest*) describeDeviceTypesRequest
{
EdcpsDescribeDeviceTypesExecutor* excutor = [[EdcpsDescribeDeviceTypesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeDeviceTypesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeDeviceTypesResponse* response = [[EdcpsDescribeDeviceTypesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeDeviceTypesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeDeviceTypesAsyncWithRequest:(EdcpsDescribeDeviceTypesRequest*) describeDeviceTypesRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeDeviceTypesResponse* _Nullable describeDeviceTypesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeDeviceTypesExecutor* excutor = [[EdcpsDescribeDeviceTypesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeDeviceTypesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeDeviceTypesResponse* response = [[EdcpsDescribeDeviceTypesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteAliasIp sync request
@param deleteAliasIpRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteAliasIpResponse` the request response data model
*/
-(NSDictionary*) deleteAliasIpSyncWithRequest:(EdcpsDeleteAliasIpRequest*) deleteAliasIpRequest
{
EdcpsDeleteAliasIpExecutor* excutor = [[EdcpsDeleteAliasIpExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteAliasIpRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteAliasIpResponse* response = [[EdcpsDeleteAliasIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteAliasIpResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteAliasIpAsyncWithRequest:(EdcpsDeleteAliasIpRequest*) deleteAliasIpRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDeleteAliasIpResponse* _Nullable deleteAliasIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDeleteAliasIpExecutor* excutor = [[EdcpsDeleteAliasIpExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteAliasIpRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteAliasIpResponse* response = [[EdcpsDeleteAliasIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyElasticIpBandwidth sync request
@param modifyElasticIpBandwidthRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyElasticIpBandwidthResponse` the request response data model
*/
-(NSDictionary*) modifyElasticIpBandwidthSyncWithRequest:(EdcpsModifyElasticIpBandwidthRequest*) modifyElasticIpBandwidthRequest
{
EdcpsModifyElasticIpBandwidthExecutor* excutor = [[EdcpsModifyElasticIpBandwidthExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyElasticIpBandwidthRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsModifyElasticIpBandwidthResponse* response = [[EdcpsModifyElasticIpBandwidthResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyElasticIpBandwidthResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyElasticIpBandwidthAsyncWithRequest:(EdcpsModifyElasticIpBandwidthRequest*) modifyElasticIpBandwidthRequest
                       completionHandler:(void(^)(int statusCode,EdcpsModifyElasticIpBandwidthResponse* _Nullable modifyElasticIpBandwidthResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsModifyElasticIpBandwidthExecutor* excutor = [[EdcpsModifyElasticIpBandwidthExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyElasticIpBandwidthRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsModifyElasticIpBandwidthResponse* response = [[EdcpsModifyElasticIpBandwidthResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstanceRaid sync request
@param describeInstanceRaidRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceRaidResponse` the request response data model
*/
-(NSDictionary*) describeInstanceRaidSyncWithRequest:(EdcpsDescribeInstanceRaidRequest*) describeInstanceRaidRequest
{
EdcpsDescribeInstanceRaidExecutor* excutor = [[EdcpsDescribeInstanceRaidExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstanceRaidRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeInstanceRaidResponse* response = [[EdcpsDescribeInstanceRaidResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstanceRaidResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstanceRaidAsyncWithRequest:(EdcpsDescribeInstanceRaidRequest*) describeInstanceRaidRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeInstanceRaidResponse* _Nullable describeInstanceRaidResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeInstanceRaidExecutor* excutor = [[EdcpsDescribeInstanceRaidExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstanceRaidRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeInstanceRaidResponse* response = [[EdcpsDescribeInstanceRaidResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteVpc sync request
@param deleteVpcRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteVpcResponse` the request response data model
*/
-(NSDictionary*) deleteVpcSyncWithRequest:(EdcpsDeleteVpcRequest*) deleteVpcRequest
{
EdcpsDeleteVpcExecutor* excutor = [[EdcpsDeleteVpcExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteVpcRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteVpcResponse* response = [[EdcpsDeleteVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteVpcResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteVpcAsyncWithRequest:(EdcpsDeleteVpcRequest*) deleteVpcRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDeleteVpcResponse* _Nullable deleteVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDeleteVpcExecutor* excutor = [[EdcpsDeleteVpcExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteVpcRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteVpcResponse* response = [[EdcpsDeleteVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeSubnet sync request
@param describeSubnetRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeSubnetResponse` the request response data model
*/
-(NSDictionary*) describeSubnetSyncWithRequest:(EdcpsDescribeSubnetRequest*) describeSubnetRequest
{
EdcpsDescribeSubnetExecutor* excutor = [[EdcpsDescribeSubnetExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeSubnetRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeSubnetResponse* response = [[EdcpsDescribeSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeSubnetResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeSubnetAsyncWithRequest:(EdcpsDescribeSubnetRequest*) describeSubnetRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeSubnetResponse* _Nullable describeSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeSubnetExecutor* excutor = [[EdcpsDescribeSubnetExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeSubnetRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeSubnetResponse* response = [[EdcpsDescribeSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeAliasIps sync request
@param describeAliasIpsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeAliasIpsResponse` the request response data model
*/
-(NSDictionary*) describeAliasIpsSyncWithRequest:(EdcpsDescribeAliasIpsRequest*) describeAliasIpsRequest
{
EdcpsDescribeAliasIpsExecutor* excutor = [[EdcpsDescribeAliasIpsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeAliasIpsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeAliasIpsResponse* response = [[EdcpsDescribeAliasIpsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeAliasIpsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeAliasIpsAsyncWithRequest:(EdcpsDescribeAliasIpsRequest*) describeAliasIpsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeAliasIpsResponse* _Nullable describeAliasIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeAliasIpsExecutor* excutor = [[EdcpsDescribeAliasIpsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeAliasIpsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeAliasIpsResponse* response = [[EdcpsDescribeAliasIpsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeLineTypes sync request
@param describeLineTypesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeLineTypesResponse` the request response data model
*/
-(NSDictionary*) describeLineTypesSyncWithRequest:(EdcpsDescribeLineTypesRequest*) describeLineTypesRequest
{
EdcpsDescribeLineTypesExecutor* excutor = [[EdcpsDescribeLineTypesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeLineTypesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeLineTypesResponse* response = [[EdcpsDescribeLineTypesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeLineTypesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeLineTypesAsyncWithRequest:(EdcpsDescribeLineTypesRequest*) describeLineTypesRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeLineTypesResponse* _Nullable describeLineTypesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeLineTypesExecutor* excutor = [[EdcpsDescribeLineTypesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeLineTypesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeLineTypesResponse* response = [[EdcpsDescribeLineTypesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeKeypairs sync request
@param describeKeypairsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeKeypairsResponse` the request response data model
*/
-(NSDictionary*) describeKeypairsSyncWithRequest:(EdcpsDescribeKeypairsRequest*) describeKeypairsRequest
{
EdcpsDescribeKeypairsExecutor* excutor = [[EdcpsDescribeKeypairsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeKeypairsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeKeypairsResponse* response = [[EdcpsDescribeKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeKeypairsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeKeypairsAsyncWithRequest:(EdcpsDescribeKeypairsRequest*) describeKeypairsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeKeypairsResponse* _Nullable describeKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeKeypairsExecutor* excutor = [[EdcpsDescribeKeypairsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeKeypairsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeKeypairsResponse* response = [[EdcpsDescribeKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeKeypair sync request
@param describeKeypairRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeKeypairResponse` the request response data model
*/
-(NSDictionary*) describeKeypairSyncWithRequest:(EdcpsDescribeKeypairRequest*) describeKeypairRequest
{
EdcpsDescribeKeypairExecutor* excutor = [[EdcpsDescribeKeypairExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeKeypairRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeKeypairResponse* response = [[EdcpsDescribeKeypairResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeKeypairResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeKeypairAsyncWithRequest:(EdcpsDescribeKeypairRequest*) describeKeypairRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeKeypairResponse* _Nullable describeKeypairResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeKeypairExecutor* excutor = [[EdcpsDescribeKeypairExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeKeypairRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeKeypairResponse* response = [[EdcpsDescribeKeypairResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
associateElasticIp sync request
@param associateElasticIpRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `associateElasticIpResponse` the request response data model
*/
-(NSDictionary*) associateElasticIpSyncWithRequest:(EdcpsAssociateElasticIpRequest*) associateElasticIpRequest
{
EdcpsAssociateElasticIpExecutor* excutor = [[EdcpsAssociateElasticIpExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:associateElasticIpRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsAssociateElasticIpResponse* response = [[EdcpsAssociateElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"associateElasticIpResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)associateElasticIpAsyncWithRequest:(EdcpsAssociateElasticIpRequest*) associateElasticIpRequest
                       completionHandler:(void(^)(int statusCode,EdcpsAssociateElasticIpResponse* _Nullable associateElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsAssociateElasticIpExecutor* excutor = [[EdcpsAssociateElasticIpExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:associateElasticIpRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsAssociateElasticIpResponse* response = [[EdcpsAssociateElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeSecondaryCidrs sync request
@param describeSecondaryCidrsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeSecondaryCidrsResponse` the request response data model
*/
-(NSDictionary*) describeSecondaryCidrsSyncWithRequest:(EdcpsDescribeSecondaryCidrsRequest*) describeSecondaryCidrsRequest
{
EdcpsDescribeSecondaryCidrsExecutor* excutor = [[EdcpsDescribeSecondaryCidrsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeSecondaryCidrsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeSecondaryCidrsResponse* response = [[EdcpsDescribeSecondaryCidrsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeSecondaryCidrsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeSecondaryCidrsAsyncWithRequest:(EdcpsDescribeSecondaryCidrsRequest*) describeSecondaryCidrsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeSecondaryCidrsResponse* _Nullable describeSecondaryCidrsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeSecondaryCidrsExecutor* excutor = [[EdcpsDescribeSecondaryCidrsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeSecondaryCidrsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeSecondaryCidrsResponse* response = [[EdcpsDescribeSecondaryCidrsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createInstances sync request
@param createInstancesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createInstancesResponse` the request response data model
*/
-(NSDictionary*) createInstancesSyncWithRequest:(EdcpsCreateInstancesRequest*) createInstancesRequest
{
EdcpsCreateInstancesExecutor* excutor = [[EdcpsCreateInstancesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createInstancesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateInstancesResponse* response = [[EdcpsCreateInstancesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createInstancesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createInstancesAsyncWithRequest:(EdcpsCreateInstancesRequest*) createInstancesRequest
                       completionHandler:(void(^)(int statusCode,EdcpsCreateInstancesResponse* _Nullable createInstancesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsCreateInstancesExecutor* excutor = [[EdcpsCreateInstancesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createInstancesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateInstancesResponse* response = [[EdcpsCreateInstancesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeAvailablePrivateIp sync request
@param describeAvailablePrivateIpRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeAvailablePrivateIpResponse` the request response data model
*/
-(NSDictionary*) describeAvailablePrivateIpSyncWithRequest:(EdcpsDescribeAvailablePrivateIpRequest*) describeAvailablePrivateIpRequest
{
EdcpsDescribeAvailablePrivateIpExecutor* excutor = [[EdcpsDescribeAvailablePrivateIpExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeAvailablePrivateIpRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeAvailablePrivateIpResponse* response = [[EdcpsDescribeAvailablePrivateIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeAvailablePrivateIpResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeAvailablePrivateIpAsyncWithRequest:(EdcpsDescribeAvailablePrivateIpRequest*) describeAvailablePrivateIpRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeAvailablePrivateIpResponse* _Nullable describeAvailablePrivateIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeAvailablePrivateIpExecutor* excutor = [[EdcpsDescribeAvailablePrivateIpExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeAvailablePrivateIpRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeAvailablePrivateIpResponse* response = [[EdcpsDescribeAvailablePrivateIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
resetPassword sync request
@param resetPasswordRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `resetPasswordResponse` the request response data model
*/
-(NSDictionary*) resetPasswordSyncWithRequest:(EdcpsResetPasswordRequest*) resetPasswordRequest
{
EdcpsResetPasswordExecutor* excutor = [[EdcpsResetPasswordExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:resetPasswordRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsResetPasswordResponse* response = [[EdcpsResetPasswordResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"resetPasswordResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)resetPasswordAsyncWithRequest:(EdcpsResetPasswordRequest*) resetPasswordRequest
                       completionHandler:(void(^)(int statusCode,EdcpsResetPasswordResponse* _Nullable resetPasswordResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsResetPasswordExecutor* excutor = [[EdcpsResetPasswordExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:resetPasswordRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsResetPasswordResponse* response = [[EdcpsResetPasswordResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeElasticIp sync request
@param describeElasticIpRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpResponse` the request response data model
*/
-(NSDictionary*) describeElasticIpSyncWithRequest:(EdcpsDescribeElasticIpRequest*) describeElasticIpRequest
{
EdcpsDescribeElasticIpExecutor* excutor = [[EdcpsDescribeElasticIpExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeElasticIpRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeElasticIpResponse* response = [[EdcpsDescribeElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeElasticIpResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeElasticIpAsyncWithRequest:(EdcpsDescribeElasticIpRequest*) describeElasticIpRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeElasticIpResponse* _Nullable describeElasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeElasticIpExecutor* excutor = [[EdcpsDescribeElasticIpExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeElasticIpRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeElasticIpResponse* response = [[EdcpsDescribeElasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteKeypairs sync request
@param deleteKeypairsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteKeypairsResponse` the request response data model
*/
-(NSDictionary*) deleteKeypairsSyncWithRequest:(EdcpsDeleteKeypairsRequest*) deleteKeypairsRequest
{
EdcpsDeleteKeypairsExecutor* excutor = [[EdcpsDeleteKeypairsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteKeypairsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteKeypairsResponse* response = [[EdcpsDeleteKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteKeypairsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteKeypairsAsyncWithRequest:(EdcpsDeleteKeypairsRequest*) deleteKeypairsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDeleteKeypairsResponse* _Nullable deleteKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDeleteKeypairsExecutor* excutor = [[EdcpsDeleteKeypairsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteKeypairsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteKeypairsResponse* response = [[EdcpsDeleteKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
stopInstance sync request
@param stopInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `stopInstanceResponse` the request response data model
*/
-(NSDictionary*) stopInstanceSyncWithRequest:(EdcpsStopInstanceRequest*) stopInstanceRequest
{
EdcpsStopInstanceExecutor* excutor = [[EdcpsStopInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:stopInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsStopInstanceResponse* response = [[EdcpsStopInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"stopInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)stopInstanceAsyncWithRequest:(EdcpsStopInstanceRequest*) stopInstanceRequest
                       completionHandler:(void(^)(int statusCode,EdcpsStopInstanceResponse* _Nullable stopInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsStopInstanceExecutor* excutor = [[EdcpsStopInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:stopInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsStopInstanceResponse* response = [[EdcpsStopInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeEdCPSRegions sync request
@param describeEdCPSRegionsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeEdCPSRegionsResponse` the request response data model
*/
-(NSDictionary*) describeEdCPSRegionsSyncWithRequest:(EdcpsDescribeEdCPSRegionsRequest*) describeEdCPSRegionsRequest
{
EdcpsDescribeEdCPSRegionsExecutor* excutor = [[EdcpsDescribeEdCPSRegionsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeEdCPSRegionsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeEdCPSRegionsResponse* response = [[EdcpsDescribeEdCPSRegionsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeEdCPSRegionsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeEdCPSRegionsAsyncWithRequest:(EdcpsDescribeEdCPSRegionsRequest*) describeEdCPSRegionsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeEdCPSRegionsResponse* _Nullable describeEdCPSRegionsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeEdCPSRegionsExecutor* excutor = [[EdcpsDescribeEdCPSRegionsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeEdCPSRegionsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeEdCPSRegionsResponse* response = [[EdcpsDescribeEdCPSRegionsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createKeypairs sync request
@param createKeypairsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createKeypairsResponse` the request response data model
*/
-(NSDictionary*) createKeypairsSyncWithRequest:(EdcpsCreateKeypairsRequest*) createKeypairsRequest
{
EdcpsCreateKeypairsExecutor* excutor = [[EdcpsCreateKeypairsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createKeypairsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateKeypairsResponse* response = [[EdcpsCreateKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createKeypairsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createKeypairsAsyncWithRequest:(EdcpsCreateKeypairsRequest*) createKeypairsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsCreateKeypairsResponse* _Nullable createKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsCreateKeypairsExecutor* excutor = [[EdcpsCreateKeypairsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createKeypairsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateKeypairsResponse* response = [[EdcpsCreateKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeVpcs sync request
@param describeVpcsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVpcsResponse` the request response data model
*/
-(NSDictionary*) describeVpcsSyncWithRequest:(EdcpsDescribeVpcsRequest*) describeVpcsRequest
{
EdcpsDescribeVpcsExecutor* excutor = [[EdcpsDescribeVpcsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeVpcsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeVpcsResponse* response = [[EdcpsDescribeVpcsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeVpcsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeVpcsAsyncWithRequest:(EdcpsDescribeVpcsRequest*) describeVpcsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeVpcsResponse* _Nullable describeVpcsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeVpcsExecutor* excutor = [[EdcpsDescribeVpcsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeVpcsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeVpcsResponse* response = [[EdcpsDescribeVpcsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeVpc sync request
@param describeVpcRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeVpcResponse` the request response data model
*/
-(NSDictionary*) describeVpcSyncWithRequest:(EdcpsDescribeVpcRequest*) describeVpcRequest
{
EdcpsDescribeVpcExecutor* excutor = [[EdcpsDescribeVpcExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeVpcRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeVpcResponse* response = [[EdcpsDescribeVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeVpcResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeVpcAsyncWithRequest:(EdcpsDescribeVpcRequest*) describeVpcRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeVpcResponse* _Nullable describeVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeVpcExecutor* excutor = [[EdcpsDescribeVpcExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeVpcRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeVpcResponse* response = [[EdcpsDescribeVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstances sync request
@param describeInstancesRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstancesResponse` the request response data model
*/
-(NSDictionary*) describeInstancesSyncWithRequest:(EdcpsDescribeInstancesRequest*) describeInstancesRequest
{
EdcpsDescribeInstancesExecutor* excutor = [[EdcpsDescribeInstancesExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstancesRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeInstancesResponse* response = [[EdcpsDescribeInstancesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstancesResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstancesAsyncWithRequest:(EdcpsDescribeInstancesRequest*) describeInstancesRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeInstancesResponse* _Nullable describeInstancesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeInstancesExecutor* excutor = [[EdcpsDescribeInstancesExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstancesRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeInstancesResponse* response = [[EdcpsDescribeInstancesResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifySubnet sync request
@param modifySubnetRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifySubnetResponse` the request response data model
*/
-(NSDictionary*) modifySubnetSyncWithRequest:(EdcpsModifySubnetRequest*) modifySubnetRequest
{
EdcpsModifySubnetExecutor* excutor = [[EdcpsModifySubnetExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifySubnetRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsModifySubnetResponse* response = [[EdcpsModifySubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifySubnetResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifySubnetAsyncWithRequest:(EdcpsModifySubnetRequest*) modifySubnetRequest
                       completionHandler:(void(^)(int statusCode,EdcpsModifySubnetResponse* _Nullable modifySubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsModifySubnetExecutor* excutor = [[EdcpsModifySubnetExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifySubnetRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsModifySubnetResponse* response = [[EdcpsModifySubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteInstance sync request
@param deleteInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteInstanceResponse` the request response data model
*/
-(NSDictionary*) deleteInstanceSyncWithRequest:(EdcpsDeleteInstanceRequest*) deleteInstanceRequest
{
EdcpsDeleteInstanceExecutor* excutor = [[EdcpsDeleteInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteInstanceResponse* response = [[EdcpsDeleteInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteInstanceAsyncWithRequest:(EdcpsDeleteInstanceRequest*) deleteInstanceRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDeleteInstanceResponse* _Nullable deleteInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDeleteInstanceExecutor* excutor = [[EdcpsDeleteInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteInstanceResponse* response = [[EdcpsDeleteInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstanceStatus sync request
@param describeInstanceStatusRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceStatusResponse` the request response data model
*/
-(NSDictionary*) describeInstanceStatusSyncWithRequest:(EdcpsDescribeInstanceStatusRequest*) describeInstanceStatusRequest
{
EdcpsDescribeInstanceStatusExecutor* excutor = [[EdcpsDescribeInstanceStatusExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstanceStatusRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeInstanceStatusResponse* response = [[EdcpsDescribeInstanceStatusResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstanceStatusResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstanceStatusAsyncWithRequest:(EdcpsDescribeInstanceStatusRequest*) describeInstanceStatusRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeInstanceStatusResponse* _Nullable describeInstanceStatusResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeInstanceStatusExecutor* excutor = [[EdcpsDescribeInstanceStatusExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstanceStatusRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeInstanceStatusResponse* response = [[EdcpsDescribeInstanceStatusResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteelasticIp sync request
@param deleteelasticIpRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteelasticIpResponse` the request response data model
*/
-(NSDictionary*) deleteelasticIpSyncWithRequest:(EdcpsDeleteelasticIpRequest*) deleteelasticIpRequest
{
EdcpsDeleteelasticIpExecutor* excutor = [[EdcpsDeleteelasticIpExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteelasticIpRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteelasticIpResponse* response = [[EdcpsDeleteelasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteelasticIpResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteelasticIpAsyncWithRequest:(EdcpsDeleteelasticIpRequest*) deleteelasticIpRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDeleteelasticIpResponse* _Nullable deleteelasticIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDeleteelasticIpExecutor* excutor = [[EdcpsDeleteelasticIpExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteelasticIpRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteelasticIpResponse* response = [[EdcpsDeleteelasticIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeSubnets sync request
@param describeSubnetsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeSubnetsResponse` the request response data model
*/
-(NSDictionary*) describeSubnetsSyncWithRequest:(EdcpsDescribeSubnetsRequest*) describeSubnetsRequest
{
EdcpsDescribeSubnetsExecutor* excutor = [[EdcpsDescribeSubnetsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeSubnetsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeSubnetsResponse* response = [[EdcpsDescribeSubnetsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeSubnetsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeSubnetsAsyncWithRequest:(EdcpsDescribeSubnetsRequest*) describeSubnetsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeSubnetsResponse* _Nullable describeSubnetsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeSubnetsExecutor* excutor = [[EdcpsDescribeSubnetsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeSubnetsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeSubnetsResponse* response = [[EdcpsDescribeSubnetsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
restartInstance sync request
@param restartInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `restartInstanceResponse` the request response data model
*/
-(NSDictionary*) restartInstanceSyncWithRequest:(EdcpsRestartInstanceRequest*) restartInstanceRequest
{
EdcpsRestartInstanceExecutor* excutor = [[EdcpsRestartInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:restartInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsRestartInstanceResponse* response = [[EdcpsRestartInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"restartInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)restartInstanceAsyncWithRequest:(EdcpsRestartInstanceRequest*) restartInstanceRequest
                       completionHandler:(void(^)(int statusCode,EdcpsRestartInstanceResponse* _Nullable restartInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsRestartInstanceExecutor* excutor = [[EdcpsRestartInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:restartInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsRestartInstanceResponse* response = [[EdcpsRestartInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeElasticIpStock sync request
@param describeElasticIpStockRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeElasticIpStockResponse` the request response data model
*/
-(NSDictionary*) describeElasticIpStockSyncWithRequest:(EdcpsDescribeElasticIpStockRequest*) describeElasticIpStockRequest
{
EdcpsDescribeElasticIpStockExecutor* excutor = [[EdcpsDescribeElasticIpStockExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeElasticIpStockRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeElasticIpStockResponse* response = [[EdcpsDescribeElasticIpStockResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeElasticIpStockResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeElasticIpStockAsyncWithRequest:(EdcpsDescribeElasticIpStockRequest*) describeElasticIpStockRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeElasticIpStockResponse* _Nullable describeElasticIpStockResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeElasticIpStockExecutor* excutor = [[EdcpsDescribeElasticIpStockExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeElasticIpStockRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeElasticIpStockResponse* response = [[EdcpsDescribeElasticIpStockResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
importKeypairs sync request
@param importKeypairsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `importKeypairsResponse` the request response data model
*/
-(NSDictionary*) importKeypairsSyncWithRequest:(EdcpsImportKeypairsRequest*) importKeypairsRequest
{
EdcpsImportKeypairsExecutor* excutor = [[EdcpsImportKeypairsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:importKeypairsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsImportKeypairsResponse* response = [[EdcpsImportKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"importKeypairsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)importKeypairsAsyncWithRequest:(EdcpsImportKeypairsRequest*) importKeypairsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsImportKeypairsResponse* _Nullable importKeypairsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsImportKeypairsExecutor* excutor = [[EdcpsImportKeypairsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:importKeypairsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsImportKeypairsResponse* response = [[EdcpsImportKeypairsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
startInstance sync request
@param startInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `startInstanceResponse` the request response data model
*/
-(NSDictionary*) startInstanceSyncWithRequest:(EdcpsStartInstanceRequest*) startInstanceRequest
{
EdcpsStartInstanceExecutor* excutor = [[EdcpsStartInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:startInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsStartInstanceResponse* response = [[EdcpsStartInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"startInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)startInstanceAsyncWithRequest:(EdcpsStartInstanceRequest*) startInstanceRequest
                       completionHandler:(void(^)(int statusCode,EdcpsStartInstanceResponse* _Nullable startInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsStartInstanceExecutor* excutor = [[EdcpsStartInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:startInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsStartInstanceResponse* response = [[EdcpsStartInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createSecondaryCidr sync request
@param createSecondaryCidrRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createSecondaryCidrResponse` the request response data model
*/
-(NSDictionary*) createSecondaryCidrSyncWithRequest:(EdcpsCreateSecondaryCidrRequest*) createSecondaryCidrRequest
{
EdcpsCreateSecondaryCidrExecutor* excutor = [[EdcpsCreateSecondaryCidrExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createSecondaryCidrRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateSecondaryCidrResponse* response = [[EdcpsCreateSecondaryCidrResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createSecondaryCidrResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createSecondaryCidrAsyncWithRequest:(EdcpsCreateSecondaryCidrRequest*) createSecondaryCidrRequest
                       completionHandler:(void(^)(int statusCode,EdcpsCreateSecondaryCidrResponse* _Nullable createSecondaryCidrResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsCreateSecondaryCidrExecutor* excutor = [[EdcpsCreateSecondaryCidrExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createSecondaryCidrRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateSecondaryCidrResponse* response = [[EdcpsCreateSecondaryCidrResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeDeviceStock sync request
@param describeDeviceStockRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeDeviceStockResponse` the request response data model
*/
-(NSDictionary*) describeDeviceStockSyncWithRequest:(EdcpsDescribeDeviceStockRequest*) describeDeviceStockRequest
{
EdcpsDescribeDeviceStockExecutor* excutor = [[EdcpsDescribeDeviceStockExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeDeviceStockRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeDeviceStockResponse* response = [[EdcpsDescribeDeviceStockResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeDeviceStockResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeDeviceStockAsyncWithRequest:(EdcpsDescribeDeviceStockRequest*) describeDeviceStockRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeDeviceStockResponse* _Nullable describeDeviceStockResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeDeviceStockExecutor* excutor = [[EdcpsDescribeDeviceStockExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeDeviceStockRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeDeviceStockResponse* response = [[EdcpsDescribeDeviceStockResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstance sync request
@param describeInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceResponse` the request response data model
*/
-(NSDictionary*) describeInstanceSyncWithRequest:(EdcpsDescribeInstanceRequest*) describeInstanceRequest
{
EdcpsDescribeInstanceExecutor* excutor = [[EdcpsDescribeInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeInstanceResponse* response = [[EdcpsDescribeInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstanceAsyncWithRequest:(EdcpsDescribeInstanceRequest*) describeInstanceRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeInstanceResponse* _Nullable describeInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeInstanceExecutor* excutor = [[EdcpsDescribeInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeInstanceResponse* response = [[EdcpsDescribeInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeInstanceName sync request
@param describeInstanceNameRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeInstanceNameResponse` the request response data model
*/
-(NSDictionary*) describeInstanceNameSyncWithRequest:(EdcpsDescribeInstanceNameRequest*) describeInstanceNameRequest
{
EdcpsDescribeInstanceNameExecutor* excutor = [[EdcpsDescribeInstanceNameExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeInstanceNameRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeInstanceNameResponse* response = [[EdcpsDescribeInstanceNameResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeInstanceNameResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeInstanceNameAsyncWithRequest:(EdcpsDescribeInstanceNameRequest*) describeInstanceNameRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeInstanceNameResponse* _Nullable describeInstanceNameResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeInstanceNameExecutor* excutor = [[EdcpsDescribeInstanceNameExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeInstanceNameRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeInstanceNameResponse* response = [[EdcpsDescribeInstanceNameResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createSubnet sync request
@param createSubnetRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createSubnetResponse` the request response data model
*/
-(NSDictionary*) createSubnetSyncWithRequest:(EdcpsCreateSubnetRequest*) createSubnetRequest
{
EdcpsCreateSubnetExecutor* excutor = [[EdcpsCreateSubnetExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createSubnetRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateSubnetResponse* response = [[EdcpsCreateSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createSubnetResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createSubnetAsyncWithRequest:(EdcpsCreateSubnetRequest*) createSubnetRequest
                       completionHandler:(void(^)(int statusCode,EdcpsCreateSubnetResponse* _Nullable createSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsCreateSubnetExecutor* excutor = [[EdcpsCreateSubnetExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createSubnetRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateSubnetResponse* response = [[EdcpsCreateSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createAliasIp sync request
@param createAliasIpRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createAliasIpResponse` the request response data model
*/
-(NSDictionary*) createAliasIpSyncWithRequest:(EdcpsCreateAliasIpRequest*) createAliasIpRequest
{
EdcpsCreateAliasIpExecutor* excutor = [[EdcpsCreateAliasIpExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createAliasIpRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateAliasIpResponse* response = [[EdcpsCreateAliasIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createAliasIpResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createAliasIpAsyncWithRequest:(EdcpsCreateAliasIpRequest*) createAliasIpRequest
                       completionHandler:(void(^)(int statusCode,EdcpsCreateAliasIpResponse* _Nullable createAliasIpResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsCreateAliasIpExecutor* excutor = [[EdcpsCreateAliasIpExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createAliasIpRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateAliasIpResponse* response = [[EdcpsCreateAliasIpResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
modifyVpc sync request
@param modifyVpcRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `modifyVpcResponse` the request response data model
*/
-(NSDictionary*) modifyVpcSyncWithRequest:(EdcpsModifyVpcRequest*) modifyVpcRequest
{
EdcpsModifyVpcExecutor* excutor = [[EdcpsModifyVpcExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:modifyVpcRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsModifyVpcResponse* response = [[EdcpsModifyVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"modifyVpcResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)modifyVpcAsyncWithRequest:(EdcpsModifyVpcRequest*) modifyVpcRequest
                       completionHandler:(void(^)(int statusCode,EdcpsModifyVpcResponse* _Nullable modifyVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsModifyVpcExecutor* excutor = [[EdcpsModifyVpcExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:modifyVpcRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsModifyVpcResponse* response = [[EdcpsModifyVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
describeDeviceRaids sync request
@param describeDeviceRaidsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `describeDeviceRaidsResponse` the request response data model
*/
-(NSDictionary*) describeDeviceRaidsSyncWithRequest:(EdcpsDescribeDeviceRaidsRequest*) describeDeviceRaidsRequest
{
EdcpsDescribeDeviceRaidsExecutor* excutor = [[EdcpsDescribeDeviceRaidsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:describeDeviceRaidsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeDeviceRaidsResponse* response = [[EdcpsDescribeDeviceRaidsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"describeDeviceRaidsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)describeDeviceRaidsAsyncWithRequest:(EdcpsDescribeDeviceRaidsRequest*) describeDeviceRaidsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDescribeDeviceRaidsResponse* _Nullable describeDeviceRaidsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDescribeDeviceRaidsExecutor* excutor = [[EdcpsDescribeDeviceRaidsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:describeDeviceRaidsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDescribeDeviceRaidsResponse* response = [[EdcpsDescribeDeviceRaidsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
createVpc sync request
@param createVpcRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createVpcResponse` the request response data model
*/
-(NSDictionary*) createVpcSyncWithRequest:(EdcpsCreateVpcRequest*) createVpcRequest
{
EdcpsCreateVpcExecutor* excutor = [[EdcpsCreateVpcExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:createVpcRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateVpcResponse* response = [[EdcpsCreateVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"createVpcResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)createVpcAsyncWithRequest:(EdcpsCreateVpcRequest*) createVpcRequest
                       completionHandler:(void(^)(int statusCode,EdcpsCreateVpcResponse* _Nullable createVpcResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsCreateVpcExecutor* excutor = [[EdcpsCreateVpcExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:createVpcRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsCreateVpcResponse* response = [[EdcpsCreateVpcResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
reinstallInstance sync request
@param reinstallInstanceRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `reinstallInstanceResponse` the request response data model
*/
-(NSDictionary*) reinstallInstanceSyncWithRequest:(EdcpsReinstallInstanceRequest*) reinstallInstanceRequest
{
EdcpsReinstallInstanceExecutor* excutor = [[EdcpsReinstallInstanceExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:reinstallInstanceRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsReinstallInstanceResponse* response = [[EdcpsReinstallInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"reinstallInstanceResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)reinstallInstanceAsyncWithRequest:(EdcpsReinstallInstanceRequest*) reinstallInstanceRequest
                       completionHandler:(void(^)(int statusCode,EdcpsReinstallInstanceResponse* _Nullable reinstallInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsReinstallInstanceExecutor* excutor = [[EdcpsReinstallInstanceExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:reinstallInstanceRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsReinstallInstanceResponse* response = [[EdcpsReinstallInstanceResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteSubnet sync request
@param deleteSubnetRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteSubnetResponse` the request response data model
*/
-(NSDictionary*) deleteSubnetSyncWithRequest:(EdcpsDeleteSubnetRequest*) deleteSubnetRequest
{
EdcpsDeleteSubnetExecutor* excutor = [[EdcpsDeleteSubnetExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteSubnetRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteSubnetResponse* response = [[EdcpsDeleteSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteSubnetResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteSubnetAsyncWithRequest:(EdcpsDeleteSubnetRequest*) deleteSubnetRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDeleteSubnetResponse* _Nullable deleteSubnetResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDeleteSubnetExecutor* excutor = [[EdcpsDeleteSubnetExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteSubnetRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteSubnetResponse* response = [[EdcpsDeleteSubnetResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
applyElasticIps sync request
@param applyElasticIpsRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `applyElasticIpsResponse` the request response data model
*/
-(NSDictionary*) applyElasticIpsSyncWithRequest:(EdcpsApplyElasticIpsRequest*) applyElasticIpsRequest
{
EdcpsApplyElasticIpsExecutor* excutor = [[EdcpsApplyElasticIpsExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:applyElasticIpsRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsApplyElasticIpsResponse* response = [[EdcpsApplyElasticIpsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"applyElasticIpsResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)applyElasticIpsAsyncWithRequest:(EdcpsApplyElasticIpsRequest*) applyElasticIpsRequest
                       completionHandler:(void(^)(int statusCode,EdcpsApplyElasticIpsResponse* _Nullable applyElasticIpsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsApplyElasticIpsExecutor* excutor = [[EdcpsApplyElasticIpsExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:applyElasticIpsRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsApplyElasticIpsResponse* response = [[EdcpsApplyElasticIpsResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}

/**
deleteSecondaryCidr sync request
@param deleteSecondaryCidrRequest request param
@return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deleteSecondaryCidrResponse` the request response data model
*/
-(NSDictionary*) deleteSecondaryCidrSyncWithRequest:(EdcpsDeleteSecondaryCidrRequest*) deleteSecondaryCidrRequest
{
EdcpsDeleteSecondaryCidrExecutor* excutor = [[EdcpsDeleteSecondaryCidrExecutor alloc] initWithJDCloudClient:self];
    NSDictionary* responseResult = [excutor executeSync:deleteSecondaryCidrRequest];
    if(responseResult)
    {
        NSData * resultData = [[responseResult objectForKey:@"dataResult"] copy];
        if(resultData)
        {
            NSMutableDictionary* result = [[NSMutableDictionary alloc]initWithDictionary:responseResult];
            
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteSecondaryCidrResponse* response = [[EdcpsDeleteSecondaryCidrResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        [result setValue:response forKey:@"deleteSecondaryCidrResponse"];
                        return result;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
    }
    return responseResult;
}


-(void)deleteSecondaryCidrAsyncWithRequest:(EdcpsDeleteSecondaryCidrRequest*) deleteSecondaryCidrRequest
                       completionHandler:(void(^)(int statusCode,EdcpsDeleteSecondaryCidrResponse* _Nullable deleteSecondaryCidrResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
EdcpsDeleteSecondaryCidrExecutor* excutor = [[EdcpsDeleteSecondaryCidrExecutor alloc] initWithJDCloudClient:self];
    [excutor executeAsync:deleteSecondaryCidrRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        if(!error&&responseData)
        {
            NSData * resultData = [responseData copy];
            NSError *jsonError;
            NSDictionary* allKeys = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&jsonError];
            if(!jsonError&& allKeys)
            {
                @try {
                    EdcpsDeleteSecondaryCidrResponse* response = [[EdcpsDeleteSecondaryCidrResponse alloc]initWithDic:allKeys];
                    if(response)
                    {
                        completionHandler(statusCode,response,responseData,error);
                        return;
                    }
                } @catch (NSException *exception) {
                    if([GlobalConfig isDebug]){
                        NSLog(@"json serialize response data error,info is %@",exception.reason);
                    }
                }
            }
        }
        completionHandler(statusCode,nil,responseData,error);
    }];
}


 /**
 edcps common sync request
 @param  jdcloudDataRequest request param
 @return key `statusCode` http request status code type is int
             `dataResult` the http request response data  type is NSData
             `requestError` the request error type is NSError
 */
 -(NSDictionary*) edcpsCommonSyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                                   url:(NSString*) url
                                                method:(NSString*) method{
    CommonExecutor* excutor = [[CommonExecutor alloc] initWithJDCloudClient:self url:url method:method];
    NSDictionary* responseResult = [excutor executeDataSync:jdcloudDataRequest];
    return responseResult;
}

-(void)edcpsCommonAsyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                         url:(NSString*) url
                                      method:(NSString*) method
                           completionHandler:(void(^)(int statusCode, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler
{
     CommonExecutor* excutor = [[CommonExecutor alloc] initWithJDCloudClient:self url:url method:method];
    
    [excutor executeDataAsync:jdcloudDataRequest completionHandler:^(int statusCode, NSData * _Nullable responseData, NSError * _Nullable error) {
        completionHandler(statusCode,responseData,error);
    }];
} 

@end
